The present invention relates to an information processing apparatus, a method for controlling the information processing apparatus, a computer program to implement the functions of the above apparatus, and an information processing system. More particularly, the invention relates to the information processing apparatus that makes effective use of a cache memory when reading data from storage equipment.
Data amount to be handled by an information processing system has lately been growing. Correspondingly, the capacity of storage equipment for use in such a system has become larger and the storage equipment is required to have higher input/output performance and reliability commensurate with its larger capacity. In view hereof, storage network technology which uses multiplex logical paths (input/output paths) to storage equipment and appropriately allocates data input/output requests (I/O) requests to the logical paths has been developed (for example, W. Curtis Preston, “Using SANs and NAS, Help for Storage Administrators” O'Reilly, February 2002, pp. 54–55).
In the foregoing prior art, the storage equipment executes processes in response to I/O requests in order in which it received the I/O requests from its host information processing apparatus.
However, the I/O requests that the storage equipment receives include conjunct ones and a mechanism for efficiently executing the processes in response to the I/O requests, focusing attention on the distinctiveness of the I/O requests, has not been developed. In particular, when a load balancing function is performed, I/O requests are evenly distributed across the paths and I/O requests for access to sequential locations of data, namely, sequential access, also may be allocated to different paths. The storage system side cannot distinguish I/O requests for sequential data access and, consequently, it has occurred that prefetch caching does not function effectively, which results in a decrease in access performance.
A method of allocating sequential access I/O requests to a same path to process them has been proposed. However, if a plurality of applications get access to a same logical unit, I/O requests from the applications are serialized and, therefore, sequential access I/O requests from one application are not always to be sequential in access to successive locations on the logical unit. In this case, it also occurs that prefetch caching does not function effectively, which results in a decrease in access performance.